/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package autopecas.Interface;

import autopecas.Exception.VeiculoException;
import java.sql.SQLException;
import java.util.ArrayList;
import autopecas.ClasseBasica.Veiculo;

/**
 *
 * @author NeGo
 */
public interface InterfaceVeiculo {

    /**
     * Metodo para Cadastrar dados do Veiculo inserindo no banco de dados .
     *
     * @param texto texto para cadastrar
     * @return true se a strong so conter cadastro de Modelo, Cor ,Veiculo,
     * false se conter outro dado
     * @throws java.sql.SQLException - Erros retomados pelo banco
     */
    public void cadastrar(Veiculo v) throws SQLException, Exception, VeiculoException;

    /**
     * Metodo para atualizacao dados do Veiculo buscando pelo codigo do veiculo
     * e alterando no banco de dados .
     *
     * @param texto texto para atualizar
     * @return true se a strong so conter atualizar peo Codigo do veiculo, false
     * se nao conter cpf nao será realizado
     * @throws java.sql.SQLException - Erros retomados pelo banco
     */
    public void atualizar(Veiculo v) throws SQLException, Exception, VeiculoException;

    /**
     * Metodo para Remover dados do Veiculo retirando do banco de dados onde
     * também é necessario a exclusao do veiculo .
     *
     * @param texto texto para Remover
     * @return true se a strong se remover o Veiculo, false se nao ocorrer a
     * remocao dado
     * @throws java.sql.SQLException - Erros retomados pelo banco
     */
    public void remover(Veiculo v) throws SQLException, Exception, VeiculoException;

    /**
     * Metodo para Listar dados do Veiculo buscando no banco de dados .
     *
     * @param texto texto para Listar as informacoes do Veiculo.
     * @return true se a strong so conter a lista dos dados, false se nao conter
     * outro dado
     * @throws java.sql.SQLException- erros retornados pelo banco
     */
    ArrayList< Veiculo> ListarVeiculo() throws SQLException, Exception, VeiculoException;

    /**
     * Metodo para Consultar dados do Veiculo da qual realiza a busca pelo
     * Codigo do veiculo no banco de dados .
     *
     * @param texto texto para Consultar
     * @return true se a strong se encontrar o codigo do veiculo , false se nao
     * conter outro dado
     * @throws java.sql.SQLException - Erros retomados pelo banco
     */
    ArrayList< Veiculo> Consultar(Integer codigoVeiculo) throws SQLException, Exception, VeiculoException;

}
